進入腳本是應用程式啟動引導過程的第一步。一個應用程式(無論是 Web 應用程式還是主控台應用程式)都有一個單一的進入腳本。終端使用者向進入腳本發出請求,腳本實例化應用程式實例並將請求轉發給它們。
Web 應用程式的進入腳本必須儲存在 Web 可存取的目錄下,以便終端使用者可以存取它們。它們通常被命名為 index.php
,但也可以使用任何其他名稱,前提是 Web 伺服器可以找到它們。
主控台應用程式的進入腳本通常儲存在應用程式的基礎路徑下,並命名為 yii
(帶有 .php
後綴)。它們應該被設定為可執行,以便使用者可以透過命令 ./yii <route> [arguments] [options]
執行主控台應用程式。
進入腳本主要執行以下工作
以下是 Basic Web Project Template 的進入腳本中的程式碼。
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
// register Composer autoloader
require __DIR__ . '/../vendor/autoload.php';
// include Yii class file
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
// load application configuration
$config = require __DIR__ . '/../config/web.php';
// create, configure and run application
(new yii\web\Application($config))->run();
同樣地,以下是主控台應用程式的進入腳本的程式碼
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link https://yii.dev.org.tw/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license https://yii.dev.org.tw/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
// register Composer autoloader
require __DIR__ . '/vendor/autoload.php';
// include Yii class file
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
// load application configuration
$config = require __DIR__ . '/config/console.php';
$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);
進入腳本是定義全域常數的最佳位置。Yii 支援以下三個常數
YII_DEBUG
:指定應用程式是否在偵錯模式下執行。當處於偵錯模式時,應用程式將保留更多記錄資訊,並且如果拋出異常,將顯示詳細的錯誤呼叫堆疊。因此,偵錯模式主要應在開發期間使用。YII_DEBUG
的預設值為 false
。YII_ENV
:指定應用程式正在哪個環境中執行。這將在配置章節中更詳細地描述。YII_ENV
的預設值為 'prod'
,表示應用程式正在生產環境中執行。YII_ENABLE_ERROR_HANDLER
:指定是否啟用 Yii 提供的錯誤處理器。此常數的預設值為 true
。當定義常數時,我們經常使用如下程式碼
defined('YII_DEBUG') or define('YII_DEBUG', true);
這等同於以下程式碼
if (!defined('YII_DEBUG')) {
define('YII_DEBUG', true);
}
顯然,前者更簡潔且更容易理解。
常數定義應在進入腳本的最開始處完成,以便它們在包含其他 PHP 檔案時生效。
發現錯字或您認為此頁面需要改進?
在 github 上編輯 !
註冊 或 登入 以發表評論。